package com.sky.service;

import com.sky.dto.OrdersCancelDTO;
import com.sky.dto.OrdersConfirmDTO;
import com.sky.dto.OrdersPageQueryDTO;
import com.sky.dto.OrdersRejectionDTO;
import com.sky.result.PageResult;
import com.sky.vo.OrderStatisticsVO;
import com.sky.vo.OrderVO;
import com.sky.vo.OrdersPageVO;

/**
 * @author iTaotao
 * @version 1.0
 * @date 2023/08/04 16:30:14
 */
public interface AdminOrderService {
    /**
     * 取消订单
     *
     * @param ordersCancelDTO 订单取消dto
     */
    void cancelOrder(OrdersCancelDTO ordersCancelDTO);

    /**
     * 订单分页
     *
     * @param ordersPageQueryDTO 订单查询页面dto
     * @return {@link OrdersPageVO}
     */
    PageResult selectPage(OrdersPageQueryDTO ordersPageQueryDTO);

    /**
     * 订单数量统计
     *
     * @return {@link OrderStatisticsVO}
     */
    OrderStatisticsVO OrdersStatis();

    /**
     * 确认订单
     *
     * @param ordersConfirmDTO 订单确认dto
     */
    void confirmOrder(OrdersConfirmDTO ordersConfirmDTO);

    /**
     * 拒绝订单
     *
     * @param ordersRejectionDTO 订单被拒绝dto
     */
    void rejectionOrder(OrdersRejectionDTO ordersRejectionDTO);

    /**
     * 派送订单
     *
     * @param id id
     */
    void DeliveryOrder(Long id);

    /**
     * 完整订单
     *
     * @param id id
     */
    void completeOrder(Long id);

    /**
     * 选择订单细节id
     *
     * @param id id
     * @return {@link OrderVO}
     */
    OrderVO selectOrderDetailById(Long id);
}
